using Baci.Net.ToolKit.ArcGISProGeoprocessor.Models;
using Baci.Net.ToolKit.ArcGISProGeoprocessor.Models.Attributes;
using Baci.Net.ToolKit.ArcGISProGeoprocessor.Models.Attributes.DomainAttributes;
using Baci.Net.ToolKit.ArcGISProGeoprocessor.Models.Enums;
using System.Collections.Generic;
using System.ComponentModel;

namespace Baci.ArcGIS._DataManagementTools._ProjectionsandTransformations
{
    /// <summary>
    /// <para>Convert Coordinate Notation</para>
    /// <para>Converts coordinate notations contained in one or two fields from one notation format to another.</para>
    /// <para>将一个或两个字段中包含的坐标表示法从一种表示法格式转换为另一种表示法格式。</para>
    /// </summary>    
    [DisplayName("Convert Coordinate Notation")]
    public class ConvertCoordinateNotation : AbstractGPProcess
    {
        /// <summary>
        /// 无参构造
        /// </summary>
        public ConvertCoordinateNotation()
        {

        }

        /// <summary>
        /// 有参构造
        /// </summary>
        /// <param name="_in_table">
        /// <para>Input Table</para>
        /// <para>The input table or text file. Point features are also valid.</para>
        /// <para>输入表或文本文件。点要素也有效。</para>
        /// </param>
        /// <param name="_out_featureclass">
        /// <para>Output Feature Class</para>
        /// <para>The output point feature class. The attribute table will contain all fields of the input table along with the fields containing converted values in the output format.</para>
        /// <para>输出点要素类。属性表将包含输入表的所有字段以及包含输出格式转换值的字段。</para>
        /// </param>
        /// <param name="_x_field">
        /// <para>X Field (Longitude)</para>
        /// <para><xdoc>
        ///   <para>A field from the input table containing the longitude value.</para>
        ///   <para>For the Input Coordinate Format parameter's DD 2, DD numeric, DDM 2, and DMS 2 options, this is the longitude field.</para>
        ///   <para>For the DD 1, DDM 1, and DMS 1 options, this field contains both latitude and longitude values in a single string.</para>
        ///   <para>For the Gars, Georef, Georef 16, UTM zones, UTM bands, USNG, USNG 16, MGRS, and MGRS 16 options, this field contains an alphanumeric notation in a single text field.</para>
        /// </xdoc></para>
        /// <para><xdoc>
        ///   <para>输入表中包含经度值的字段。</para>
        ///   <para>对于输入坐标格式参数的 DD 2、DD 数值、DDM 2 和 DMS 2 选项，这是经度字段。</para>
        ///   <para>对于 DD 1、DDM 1 和 DMS 1 选项，此字段在单个字符串中同时包含纬度和经度值。</para>
        ///   <para>对于 Gars、Georef、Georef 16、UTM 区域、UTM 波段、USNG、USNG 16、MGRS 和 MGRS 16 选项，此字段在单个文本字段中包含字母数字表示法。</para>
        /// </xdoc></para>
        /// </param>
        /// <param name="_y_field">
        /// <para>Y Field (Latitude)</para>
        /// <para><xdoc>
        ///   <para>A field from the input table containing the latitude value.</para>
        ///   <para>For the Input Coordinate Format parameter's DD 2, DD numeric, DDM 2, and DMS 2 options, this is the latitude field.</para>
        ///   <para>This parameter is inactive when one of the single-string formats is chosen.</para>
        /// </xdoc></para>
        /// <para><xdoc>
        ///   <para>输入表中包含纬度值的字段。</para>
        ///   <para>对于输入坐标格式参数的 DD 2、DD 数值、DDM 2 和 DMS 2 选项，这是纬度字段。</para>
        ///   <para>当选择其中一种单字符串格式时，此参数处于非活动状态。</para>
        /// </xdoc></para>
        /// </param>
        /// <param name="_input_coordinate_format">
        /// <para>Input Coordinate Format</para>
        /// <para><xdoc>
        ///   <para>Specifies the coordinate format of the input fields.</para>
        ///   <bulletList>
        ///     <bullet_item>DD 1—Both longitude and latitude values are in a single field. Two values are separated by a space, a comma, or a slash.</bullet_item><para/>
        ///     <bullet_item>DD 2—Longitude and latitude values are in two separate fields.This is the default.</bullet_item><para/>
        ///     <bullet_item>DDM 1—Both longitude and latitude values are in a single field. Two values are separated by a space, a comma, or a slash.</bullet_item><para/>
        ///     <bullet_item>DDM 2— Longitude and latitude values are in two separate fields.</bullet_item><para/>
        ///     <bullet_item>DMS 1—Both longitude and latitude values are in a single field. Two values are separated by a space, a comma, or a slash.</bullet_item><para/>
        ///     <bullet_item>DMS 2—Longitude and latitude values are in two separate fields.</bullet_item><para/>
        ///     <bullet_item>Gars—Global Area Reference System. Based on latitude and longitude, it divides and subdivides the world into cells.</bullet_item><para/>
        ///     <bullet_item>Georef—World Geographic Reference System. A grid-based system that divides the world into 15-degree quadrangles and then subdivides into smaller quadrangles.</bullet_item><para/>
        ///     <bullet_item>Georef 16—World Geographic Reference System in 16-digit precision.</bullet_item><para/>
        ///     <bullet_item>UTM zones—The letter N or S after the UTM zone number designates only North or South hemisphere.</bullet_item><para/>
        ///     <bullet_item>UTM bands—The letter after the UTM zone number designates one of the 20 latitude bands. N or S does not designate a hemisphere.</bullet_item><para/>
        ///     <bullet_item>USNG—United States National Grid. Almost exactly the same as MGRS but uses North American Datum 1983 (NAD83) as its datum.</bullet_item><para/>
        ///     <bullet_item>USNG 16—United States National Grid in 16-digit higher precision.</bullet_item><para/>
        ///     <bullet_item>MGRS—Military Grid Reference System. Follows the UTM coordinates and divides the world into 6-degree longitude and 20 latitude bands, but MGRS then further subdivides the grid zones into smaller 100,000-meter grids. These 100,000-meter grids are then divided into 10,000-meter, 1,000-meter, 100-meter, 10-meter, and 1-meter grids.</bullet_item><para/>
        ///     <bullet_item>MGRS 16—Military Grid Reference System in 16-digit precision.</bullet_item><para/>
        ///     <bullet_item>Shape—Only available when a point feature layer is selected as input. The coordinates of each point are used to define the output format.</bullet_item><para/>
        ///   </bulletList>
        ///   <para>DD, DDM, DMS, and UTM are also valid keywords; they can be used just by typing in (on dialog) or passing the value in scripting. However, keywords with underscore and a qualifier tell more about the field values.</para>
        /// </xdoc></para>
        /// <para><xdoc>
        ///   <para>指定输入字段的坐标格式。</para>
        ///   <bulletList>
        ///     <bullet_item>DD 1 - 经度和纬度值都位于单个字段中。两个值用空格、逗号或斜杠分隔。</bullet_item><para/>
        ///     <bullet_item>DD 2 - 经度和纬度值位于两个单独的字段中。这是默认设置。</bullet_item><para/>
        ///     <bullet_item>DDM 1 - 经度和纬度值都位于单个字段中。两个值用空格、逗号或斜杠分隔。</bullet_item><para/>
        ///     <bullet_item>DDM 2— 经度和纬度值位于两个单独的字段中。</bullet_item><para/>
        ///     <bullet_item>DMS 1 - 经度和纬度值都位于单个字段中。两个值用空格、逗号或斜杠分隔。</bullet_item><para/>
        ///     <bullet_item>DMS 2 - 经度和纬度值位于两个单独的字段中。</bullet_item><para/>
        ///     <bullet_item>Gars - 全球区域参考系统。根据纬度和经度，它将世界划分和细分为单元。</bullet_item><para/>
        ///     <bullet_item>Georef - 世界地理参考系。一个基于网格的系统，将世界划分为 15 度的四边形，然后细分为更小的四边形。</bullet_item><para/>
        ///     <bullet_item>Georef 16 - 世界地理参考系统，精度为 16 位。</bullet_item><para/>
        ///     <bullet_item>UTM 区域 - UTM 区域编号后的字母 N 或 S 仅表示北半球或南半球。</bullet_item><para/>
        ///     <bullet_item>UTM 波段 - UTM 区域编号后面的字母表示 20 个纬度波段之一。N 或 S 不表示半球。</bullet_item><para/>
        ///     <bullet_item>USNG—美国国家电网。与 MGRS 几乎完全相同，但使用北美基准面 1983 （NAD83） 作为其基准面。</bullet_item><para/>
        ///     <bullet_item>USNG 16 - 美国国家电网，精度更高 16 位。</bullet_item><para/>
        ///     <bullet_item>MGRS - 军用网格参考系统。遵循 UTM 坐标并将世界划分为 6 度经度和 20 个纬度带，但 MGRS 随后将网格区域进一步细分为更小的 100,000 米网格。然后将这些 100,000 米网格划分为 10,000 米、1,000 米、100 米、10 米和 1 米网格。</bullet_item><para/>
        ///     <bullet_item>MGRS 16 - 16 位精度的军用网格参考系统。</bullet_item><para/>
        ///     <bullet_item>形状 - 仅当选择点要素图层作为输入时才可用。每个点的坐标用于定义输出格式。</bullet_item><para/>
        ///   </bulletList>
        ///   <para>DD、DDM、DMS 和 UTM 也是有效的关键字;只需键入（在对话框中）或在脚本中传递值即可使用它们。但是，带有下划线和限定符的关键字可以更多地说明字段值。</para>
        /// </xdoc></para>
        /// </param>
        /// <param name="_output_coordinate_format">
        /// <para>Output Coordinate Format</para>
        /// <para><xdoc>
        ///   <para>Specifies the coordinate format to which the input notations will be converted.</para>
        ///   <bulletList>
        ///     <bullet_item>DD 1—Both longitude and latitude values are in a single field. Two values are separated by a space, a comma, or a slash.</bullet_item><para/>
        ///     <bullet_item>DD 2—Longitude and latitude values are in two separate fields.</bullet_item><para/>
        ///     <bullet_item>DD numeric—Longitude and latitude values are in two separate fields of type Double. Values in the West and South are denoted by a minus sign.</bullet_item><para/>
        ///     <bullet_item>DDM 1—Both longitude and latitude values are in a single field. Two values are separated by a space, a comma, or a slash.</bullet_item><para/>
        ///     <bullet_item>DDM 2— Longitude and latitude values are in two separate fields.</bullet_item><para/>
        ///     <bullet_item>DMS 1—Both longitude and latitude values are in a single field. Two values are separated by a space, a comma, or a slash.</bullet_item><para/>
        ///     <bullet_item>DMS 2—Longitude and latitude values are in two separate fields.</bullet_item><para/>
        ///     <bullet_item>Gars—Global Area Reference System. Based on latitude and longitude, it divides and subdivides the world into cells.</bullet_item><para/>
        ///     <bullet_item>Georef—World Geographic Reference System. A grid-based system that divides the world into 15-degree quadrangles and then subdivides into smaller quadrangles.</bullet_item><para/>
        ///     <bullet_item>Georef 16—World Geographic Reference System in 16-digit precision.</bullet_item><para/>
        ///     <bullet_item>UTM zones—The letter N or S after the UTM zone number designates only North or South hemisphere.</bullet_item><para/>
        ///     <bullet_item>UTM bands—The letter after the UTM zone number designates one of the 20 latitude bands. N or S does not designate a hemisphere.</bullet_item><para/>
        ///     <bullet_item>USNG—United States National Grid. Almost exactly the same as MGRS but uses North American Datum 1983 (NAD83) as its datum.</bullet_item><para/>
        ///     <bullet_item>USNG 16—United States National Grid in 16-digit higher precision.</bullet_item><para/>
        ///     <bullet_item>MGRS—Military Grid Reference System. Follows the UTM coordinates and divides the world into 6-degree longitude and 20 latitude bands, but MGRS then further subdivides the grid zones into smaller 100,000-meter grids. These 100,000-meter grids are then divided into 10,000-meter, 1,000-meter, 100-meter, 10-meter, and 1-meter grids.</bullet_item><para/>
        ///     <bullet_item>MGRS 16—Military Grid Reference System in 16-digit precision.</bullet_item><para/>
        ///   </bulletList>
        ///   <para>DD, DDM, DMS, and UTM are also valid keywords; they can be used just by typing in (on dialog) or passing the value in scripting. However, keywords with underscore and a qualifier tell more about the field values.</para>
        /// </xdoc></para>
        /// <para><xdoc>
        ///   <para>指定输入表示法将转换为的坐标格式。</para>
        ///   <bulletList>
        ///     <bullet_item>DD 1 - 经度和纬度值都位于单个字段中。两个值用空格、逗号或斜杠分隔。</bullet_item><para/>
        ///     <bullet_item>DD 2 - 经度和纬度值位于两个单独的字段中。</bullet_item><para/>
        ///     <bullet_item>DD 数值 - 经度和纬度值位于 Double 类型的两个独立字段中。西部和南部的值用减号表示。</bullet_item><para/>
        ///     <bullet_item>DDM 1 - 经度和纬度值都位于单个字段中。两个值用空格、逗号或斜杠分隔。</bullet_item><para/>
        ///     <bullet_item>DDM 2— 经度和纬度值位于两个单独的字段中。</bullet_item><para/>
        ///     <bullet_item>DMS 1 - 经度和纬度值都位于单个字段中。两个值用空格、逗号或斜杠分隔。</bullet_item><para/>
        ///     <bullet_item>DMS 2 - 经度和纬度值位于两个单独的字段中。</bullet_item><para/>
        ///     <bullet_item>Gars - 全球区域参考系统。根据纬度和经度，它将世界划分和细分为单元。</bullet_item><para/>
        ///     <bullet_item>Georef - 世界地理参考系。一个基于网格的系统，将世界划分为 15 度的四边形，然后细分为更小的四边形。</bullet_item><para/>
        ///     <bullet_item>Georef 16 - 世界地理参考系统，精度为 16 位。</bullet_item><para/>
        ///     <bullet_item>UTM 区域 - UTM 区域编号后的字母 N 或 S 仅表示北半球或南半球。</bullet_item><para/>
        ///     <bullet_item>UTM 波段 - UTM 区域编号后面的字母表示 20 个纬度波段之一。N 或 S 不表示半球。</bullet_item><para/>
        ///     <bullet_item>USNG—美国国家电网。与 MGRS 几乎完全相同，但使用北美基准面 1983 （NAD83） 作为其基准面。</bullet_item><para/>
        ///     <bullet_item>USNG 16 - 美国国家电网，精度更高 16 位。</bullet_item><para/>
        ///     <bullet_item>MGRS - 军用网格参考系统。遵循 UTM 坐标并将世界划分为 6 度经度和 20 个纬度带，但 MGRS 随后将网格区域进一步细分为更小的 100,000 米网格。然后将这些 100,000 米网格划分为 10,000 米、1,000 米、100 米、10 米和 1 米网格。</bullet_item><para/>
        ///     <bullet_item>MGRS 16 - 16 位精度的军用网格参考系统。</bullet_item><para/>
        ///   </bulletList>
        ///   <para>DD、DDM、DMS 和 UTM 也是有效的关键字;只需键入（在对话框中）或在脚本中传递值即可使用它们。但是，带有下划线和限定符的关键字可以更多地说明字段值。</para>
        /// </xdoc></para>
        /// </param>
        public ConvertCoordinateNotation(object _in_table, object _out_featureclass, object _x_field, object _y_field, _input_coordinate_format_value _input_coordinate_format, _output_coordinate_format_value _output_coordinate_format)
        {
            this._in_table = _in_table;
            this._out_featureclass = _out_featureclass;
            this._x_field = _x_field;
            this._y_field = _y_field;
            this._input_coordinate_format = _input_coordinate_format;
            this._output_coordinate_format = _output_coordinate_format;
        }
        public override string ToolboxName => "Data Management Tools";

        public override string ToolName => "Convert Coordinate Notation";

        public override string CallName => "management.ConvertCoordinateNotation";

        public override List<string> AcceptEnvironments => ["XYTolerance", "geographicTransformations", "outputCoordinateSystem", "scratchWorkspace", "workspace"];

        public override object[] ParameterInfo => [_in_table, _out_featureclass, _x_field, _y_field, _input_coordinate_format.GetGPValue(), _output_coordinate_format.GetGPValue(), _id_field, _spatial_reference, _in_coor_system, _exclude_invalid_records.GetGPValue()];

        /// <summary>
        /// <para>Input Table</para>
        /// <para>The input table or text file. Point features are also valid.</para>
        /// <para>输入表或文本文件。点要素也有效。</para>
        /// <para></para>
        /// </summary>
        [DisplayName("Input Table")]
        [Description("")]
        [Option(OptionTypeEnum.Must)]
        public object _in_table { get; set; }


        /// <summary>
        /// <para>Output Feature Class</para>
        /// <para>The output point feature class. The attribute table will contain all fields of the input table along with the fields containing converted values in the output format.</para>
        /// <para>输出点要素类。属性表将包含输入表的所有字段以及包含输出格式转换值的字段。</para>
        /// <para></para>
        /// </summary>
        [DisplayName("Output Feature Class")]
        [Description("")]
        [Option(OptionTypeEnum.Must)]
        public object _out_featureclass { get; set; }


        /// <summary>
        /// <para>X Field (Longitude)</para>
        /// <para><xdoc>
        ///   <para>A field from the input table containing the longitude value.</para>
        ///   <para>For the Input Coordinate Format parameter's DD 2, DD numeric, DDM 2, and DMS 2 options, this is the longitude field.</para>
        ///   <para>For the DD 1, DDM 1, and DMS 1 options, this field contains both latitude and longitude values in a single string.</para>
        ///   <para>For the Gars, Georef, Georef 16, UTM zones, UTM bands, USNG, USNG 16, MGRS, and MGRS 16 options, this field contains an alphanumeric notation in a single text field.</para>
        /// </xdoc></para>
        /// <para><xdoc>
        ///   <para>输入表中包含经度值的字段。</para>
        ///   <para>对于输入坐标格式参数的 DD 2、DD 数值、DDM 2 和 DMS 2 选项，这是经度字段。</para>
        ///   <para>对于 DD 1、DDM 1 和 DMS 1 选项，此字段在单个字符串中同时包含纬度和经度值。</para>
        ///   <para>对于 Gars、Georef、Georef 16、UTM 区域、UTM 波段、USNG、USNG 16、MGRS 和 MGRS 16 选项，此字段在单个文本字段中包含字母数字表示法。</para>
        /// </xdoc></para>
        /// <para></para>
        /// </summary>
        [DisplayName("X Field (Longitude)")]
        [Description("")]
        [Option(OptionTypeEnum.Must)]
        public object _x_field { get; set; }


        /// <summary>
        /// <para>Y Field (Latitude)</para>
        /// <para><xdoc>
        ///   <para>A field from the input table containing the latitude value.</para>
        ///   <para>For the Input Coordinate Format parameter's DD 2, DD numeric, DDM 2, and DMS 2 options, this is the latitude field.</para>
        ///   <para>This parameter is inactive when one of the single-string formats is chosen.</para>
        /// </xdoc></para>
        /// <para><xdoc>
        ///   <para>输入表中包含纬度值的字段。</para>
        ///   <para>对于输入坐标格式参数的 DD 2、DD 数值、DDM 2 和 DMS 2 选项，这是纬度字段。</para>
        ///   <para>当选择其中一种单字符串格式时，此参数处于非活动状态。</para>
        /// </xdoc></para>
        /// <para></para>
        /// </summary>
        [DisplayName("Y Field (Latitude)")]
        [Description("")]
        [Option(OptionTypeEnum.Must)]
        public object _y_field { get; set; }


        /// <summary>
        /// <para>Input Coordinate Format</para>
        /// <para><xdoc>
        ///   <para>Specifies the coordinate format of the input fields.</para>
        ///   <bulletList>
        ///     <bullet_item>DD 1—Both longitude and latitude values are in a single field. Two values are separated by a space, a comma, or a slash.</bullet_item><para/>
        ///     <bullet_item>DD 2—Longitude and latitude values are in two separate fields.This is the default.</bullet_item><para/>
        ///     <bullet_item>DDM 1—Both longitude and latitude values are in a single field. Two values are separated by a space, a comma, or a slash.</bullet_item><para/>
        ///     <bullet_item>DDM 2— Longitude and latitude values are in two separate fields.</bullet_item><para/>
        ///     <bullet_item>DMS 1—Both longitude and latitude values are in a single field. Two values are separated by a space, a comma, or a slash.</bullet_item><para/>
        ///     <bullet_item>DMS 2—Longitude and latitude values are in two separate fields.</bullet_item><para/>
        ///     <bullet_item>Gars—Global Area Reference System. Based on latitude and longitude, it divides and subdivides the world into cells.</bullet_item><para/>
        ///     <bullet_item>Georef—World Geographic Reference System. A grid-based system that divides the world into 15-degree quadrangles and then subdivides into smaller quadrangles.</bullet_item><para/>
        ///     <bullet_item>Georef 16—World Geographic Reference System in 16-digit precision.</bullet_item><para/>
        ///     <bullet_item>UTM zones—The letter N or S after the UTM zone number designates only North or South hemisphere.</bullet_item><para/>
        ///     <bullet_item>UTM bands—The letter after the UTM zone number designates one of the 20 latitude bands. N or S does not designate a hemisphere.</bullet_item><para/>
        ///     <bullet_item>USNG—United States National Grid. Almost exactly the same as MGRS but uses North American Datum 1983 (NAD83) as its datum.</bullet_item><para/>
        ///     <bullet_item>USNG 16—United States National Grid in 16-digit higher precision.</bullet_item><para/>
        ///     <bullet_item>MGRS—Military Grid Reference System. Follows the UTM coordinates and divides the world into 6-degree longitude and 20 latitude bands, but MGRS then further subdivides the grid zones into smaller 100,000-meter grids. These 100,000-meter grids are then divided into 10,000-meter, 1,000-meter, 100-meter, 10-meter, and 1-meter grids.</bullet_item><para/>
        ///     <bullet_item>MGRS 16—Military Grid Reference System in 16-digit precision.</bullet_item><para/>
        ///     <bullet_item>Shape—Only available when a point feature layer is selected as input. The coordinates of each point are used to define the output format.</bullet_item><para/>
        ///   </bulletList>
        ///   <para>DD, DDM, DMS, and UTM are also valid keywords; they can be used just by typing in (on dialog) or passing the value in scripting. However, keywords with underscore and a qualifier tell more about the field values.</para>
        /// </xdoc></para>
        /// <para><xdoc>
        ///   <para>指定输入字段的坐标格式。</para>
        ///   <bulletList>
        ///     <bullet_item>DD 1 - 经度和纬度值都位于单个字段中。两个值用空格、逗号或斜杠分隔。</bullet_item><para/>
        ///     <bullet_item>DD 2 - 经度和纬度值位于两个单独的字段中。这是默认设置。</bullet_item><para/>
        ///     <bullet_item>DDM 1 - 经度和纬度值都位于单个字段中。两个值用空格、逗号或斜杠分隔。</bullet_item><para/>
        ///     <bullet_item>DDM 2— 经度和纬度值位于两个单独的字段中。</bullet_item><para/>
        ///     <bullet_item>DMS 1 - 经度和纬度值都位于单个字段中。两个值用空格、逗号或斜杠分隔。</bullet_item><para/>
        ///     <bullet_item>DMS 2 - 经度和纬度值位于两个单独的字段中。</bullet_item><para/>
        ///     <bullet_item>Gars - 全球区域参考系统。根据纬度和经度，它将世界划分和细分为单元。</bullet_item><para/>
        ///     <bullet_item>Georef - 世界地理参考系。一个基于网格的系统，将世界划分为 15 度的四边形，然后细分为更小的四边形。</bullet_item><para/>
        ///     <bullet_item>Georef 16 - 世界地理参考系统，精度为 16 位。</bullet_item><para/>
        ///     <bullet_item>UTM 区域 - UTM 区域编号后的字母 N 或 S 仅表示北半球或南半球。</bullet_item><para/>
        ///     <bullet_item>UTM 波段 - UTM 区域编号后面的字母表示 20 个纬度波段之一。N 或 S 不表示半球。</bullet_item><para/>
        ///     <bullet_item>USNG—美国国家电网。与 MGRS 几乎完全相同，但使用北美基准面 1983 （NAD83） 作为其基准面。</bullet_item><para/>
        ///     <bullet_item>USNG 16 - 美国国家电网，精度更高 16 位。</bullet_item><para/>
        ///     <bullet_item>MGRS - 军用网格参考系统。遵循 UTM 坐标并将世界划分为 6 度经度和 20 个纬度带，但 MGRS 随后将网格区域进一步细分为更小的 100,000 米网格。然后将这些 100,000 米网格划分为 10,000 米、1,000 米、100 米、10 米和 1 米网格。</bullet_item><para/>
        ///     <bullet_item>MGRS 16 - 16 位精度的军用网格参考系统。</bullet_item><para/>
        ///     <bullet_item>形状 - 仅当选择点要素图层作为输入时才可用。每个点的坐标用于定义输出格式。</bullet_item><para/>
        ///   </bulletList>
        ///   <para>DD、DDM、DMS 和 UTM 也是有效的关键字;只需键入（在对话框中）或在脚本中传递值即可使用它们。但是，带有下划线和限定符的关键字可以更多地说明字段值。</para>
        /// </xdoc></para>
        /// <para></para>
        /// </summary>
        [DisplayName("Input Coordinate Format")]
        [Description("")]
        [Option(OptionTypeEnum.Must)]
        public _input_coordinate_format_value _input_coordinate_format { get; set; }

        public enum _input_coordinate_format_value
        {
            /// <summary>
            /// <para>DD 1</para>
            /// <para>DD 1—Both longitude and latitude values are in a single field. Two values are separated by a space, a comma, or a slash.</para>
            /// <para>DD 1 - 经度和纬度值都位于单个字段中。两个值用空格、逗号或斜杠分隔。</para>
            /// </summary>
            [Description("DD 1")]
            [GPEnumValue("DD_1")]
            _DD_1,

            /// <summary>
            /// <para>DD 2</para>
            /// <para>DD 2—Longitude and latitude values are in two separate fields.This is the default.</para>
            /// <para>DD 2 - 经度和纬度值位于两个单独的字段中。这是默认设置。</para>
            /// </summary>
            [Description("DD 2")]
            [GPEnumValue("DD_2")]
            _DD_2,

            /// <summary>
            /// <para>DDM 1</para>
            /// <para>DDM 1—Both longitude and latitude values are in a single field. Two values are separated by a space, a comma, or a slash.</para>
            /// <para>DDM 1 - 经度和纬度值都位于单个字段中。两个值用空格、逗号或斜杠分隔。</para>
            /// </summary>
            [Description("DDM 1")]
            [GPEnumValue("DDM_1")]
            _DDM_1,

            /// <summary>
            /// <para>DDM 2</para>
            /// <para>DDM 2— Longitude and latitude values are in two separate fields.</para>
            /// <para>DDM 2— 经度和纬度值位于两个单独的字段中。</para>
            /// </summary>
            [Description("DDM 2")]
            [GPEnumValue("DDM_2")]
            _DDM_2,

            /// <summary>
            /// <para>DMS 1</para>
            /// <para>DMS 1—Both longitude and latitude values are in a single field. Two values are separated by a space, a comma, or a slash.</para>
            /// <para>DMS 1 - 经度和纬度值都位于单个字段中。两个值用空格、逗号或斜杠分隔。</para>
            /// </summary>
            [Description("DMS 1")]
            [GPEnumValue("DMS_1")]
            _DMS_1,

            /// <summary>
            /// <para>DMS 2</para>
            /// <para>DMS 2—Longitude and latitude values are in two separate fields.</para>
            /// <para>DMS 2 - 经度和纬度值位于两个单独的字段中。</para>
            /// </summary>
            [Description("DMS 2")]
            [GPEnumValue("DMS_2")]
            _DMS_2,

            /// <summary>
            /// <para>Gars</para>
            /// <para>Gars—Global Area Reference System. Based on latitude and longitude, it divides and subdivides the world into cells.</para>
            /// <para>Gars - 全球区域参考系统。根据纬度和经度，它将世界划分和细分为单元。</para>
            /// </summary>
            [Description("Gars")]
            [GPEnumValue("GARS")]
            _GARS,

            /// <summary>
            /// <para>Georef</para>
            /// <para>Georef—World Geographic Reference System. A grid-based system that divides the world into 15-degree quadrangles and then subdivides into smaller quadrangles.</para>
            /// <para>Georef - 世界地理参考系。一个基于网格的系统，将世界划分为 15 度的四边形，然后细分为更小的四边形。</para>
            /// </summary>
            [Description("Georef")]
            [GPEnumValue("GEOREF")]
            _GEOREF,

            /// <summary>
            /// <para>Georef 16</para>
            /// <para>Georef 16—World Geographic Reference System in 16-digit precision.</para>
            /// <para>Georef 16 - 世界地理参考系统，精度为 16 位。</para>
            /// </summary>
            [Description("Georef 16")]
            [GPEnumValue("GEOREF16")]
            _GEOREF16,

            /// <summary>
            /// <para>UTM bands</para>
            /// <para>UTM bands—The letter after the UTM zone number designates one of the 20 latitude bands. N or S does not designate a hemisphere.</para>
            /// <para>UTM 波段 - UTM 区域编号后面的字母表示 20 个纬度波段之一。N 或 S 不表示半球。</para>
            /// </summary>
            [Description("UTM bands")]
            [GPEnumValue("UTM_BANDS")]
            _UTM_BANDS,

            /// <summary>
            /// <para>UTM zones</para>
            /// <para>UTM zones—The letter N or S after the UTM zone number designates only North or South hemisphere.</para>
            /// <para>UTM 区域 - UTM 区域编号后的字母 N 或 S 仅表示北半球或南半球。</para>
            /// </summary>
            [Description("UTM zones")]
            [GPEnumValue("UTM_ZONES")]
            _UTM_ZONES,

            /// <summary>
            /// <para>USNG</para>
            /// <para>USNG—United States National Grid. Almost exactly the same as MGRS but uses North American Datum 1983 (NAD83) as its datum.</para>
            /// <para>USNG—美国国家电网。与 MGRS 几乎完全相同，但使用北美基准面 1983 （NAD83） 作为其基准面。</para>
            /// </summary>
            [Description("USNG")]
            [GPEnumValue("USNG")]
            _USNG,

            /// <summary>
            /// <para>USNG 16</para>
            /// <para>USNG 16—United States National Grid in 16-digit higher precision.</para>
            /// <para>USNG 16 - 美国国家电网，精度更高 16 位。</para>
            /// </summary>
            [Description("USNG 16")]
            [GPEnumValue("USNG16")]
            _USNG16,

            /// <summary>
            /// <para>MGRS</para>
            /// <para>MGRS—Military Grid Reference System. Follows the UTM coordinates and divides the world into 6-degree longitude and 20 latitude bands, but MGRS then further subdivides the grid zones into smaller 100,000-meter grids. These 100,000-meter grids are then divided into 10,000-meter, 1,000-meter, 100-meter, 10-meter, and 1-meter grids.</para>
            /// <para>MGRS - 军用网格参考系统。遵循 UTM 坐标并将世界划分为 6 度经度和 20 个纬度带，但 MGRS 随后将网格区域进一步细分为更小的 100,000 米网格。然后将这些 100,000 米网格划分为 10,000 米、1,000 米、100 米、10 米和 1 米网格。</para>
            /// </summary>
            [Description("MGRS")]
            [GPEnumValue("MGRS")]
            _MGRS,

            /// <summary>
            /// <para>MGRS 16</para>
            /// <para>MGRS 16—Military Grid Reference System in 16-digit precision.</para>
            /// <para>MGRS 16 - 16 位精度的军用网格参考系统。</para>
            /// </summary>
            [Description("MGRS 16")]
            [GPEnumValue("MGRS16")]
            _MGRS16,

            /// <summary>
            /// <para>Shape</para>
            /// <para>Shape—Only available when a point feature layer is selected as input. The coordinates of each point are used to define the output format.</para>
            /// <para>形状 - 仅当选择点要素图层作为输入时才可用。每个点的坐标用于定义输出格式。</para>
            /// </summary>
            [Description("Shape")]
            [GPEnumValue("SHAPE")]
            _SHAPE,

        }

        /// <summary>
        /// <para>Output Coordinate Format</para>
        /// <para><xdoc>
        ///   <para>Specifies the coordinate format to which the input notations will be converted.</para>
        ///   <bulletList>
        ///     <bullet_item>DD 1—Both longitude and latitude values are in a single field. Two values are separated by a space, a comma, or a slash.</bullet_item><para/>
        ///     <bullet_item>DD 2—Longitude and latitude values are in two separate fields.</bullet_item><para/>
        ///     <bullet_item>DD numeric—Longitude and latitude values are in two separate fields of type Double. Values in the West and South are denoted by a minus sign.</bullet_item><para/>
        ///     <bullet_item>DDM 1—Both longitude and latitude values are in a single field. Two values are separated by a space, a comma, or a slash.</bullet_item><para/>
        ///     <bullet_item>DDM 2— Longitude and latitude values are in two separate fields.</bullet_item><para/>
        ///     <bullet_item>DMS 1—Both longitude and latitude values are in a single field. Two values are separated by a space, a comma, or a slash.</bullet_item><para/>
        ///     <bullet_item>DMS 2—Longitude and latitude values are in two separate fields.</bullet_item><para/>
        ///     <bullet_item>Gars—Global Area Reference System. Based on latitude and longitude, it divides and subdivides the world into cells.</bullet_item><para/>
        ///     <bullet_item>Georef—World Geographic Reference System. A grid-based system that divides the world into 15-degree quadrangles and then subdivides into smaller quadrangles.</bullet_item><para/>
        ///     <bullet_item>Georef 16—World Geographic Reference System in 16-digit precision.</bullet_item><para/>
        ///     <bullet_item>UTM zones—The letter N or S after the UTM zone number designates only North or South hemisphere.</bullet_item><para/>
        ///     <bullet_item>UTM bands—The letter after the UTM zone number designates one of the 20 latitude bands. N or S does not designate a hemisphere.</bullet_item><para/>
        ///     <bullet_item>USNG—United States National Grid. Almost exactly the same as MGRS but uses North American Datum 1983 (NAD83) as its datum.</bullet_item><para/>
        ///     <bullet_item>USNG 16—United States National Grid in 16-digit higher precision.</bullet_item><para/>
        ///     <bullet_item>MGRS—Military Grid Reference System. Follows the UTM coordinates and divides the world into 6-degree longitude and 20 latitude bands, but MGRS then further subdivides the grid zones into smaller 100,000-meter grids. These 100,000-meter grids are then divided into 10,000-meter, 1,000-meter, 100-meter, 10-meter, and 1-meter grids.</bullet_item><para/>
        ///     <bullet_item>MGRS 16—Military Grid Reference System in 16-digit precision.</bullet_item><para/>
        ///   </bulletList>
        ///   <para>DD, DDM, DMS, and UTM are also valid keywords; they can be used just by typing in (on dialog) or passing the value in scripting. However, keywords with underscore and a qualifier tell more about the field values.</para>
        /// </xdoc></para>
        /// <para><xdoc>
        ///   <para>指定输入表示法将转换为的坐标格式。</para>
        ///   <bulletList>
        ///     <bullet_item>DD 1 - 经度和纬度值都位于单个字段中。两个值用空格、逗号或斜杠分隔。</bullet_item><para/>
        ///     <bullet_item>DD 2 - 经度和纬度值位于两个单独的字段中。</bullet_item><para/>
        ///     <bullet_item>DD 数值 - 经度和纬度值位于 Double 类型的两个独立字段中。西部和南部的值用减号表示。</bullet_item><para/>
        ///     <bullet_item>DDM 1 - 经度和纬度值都位于单个字段中。两个值用空格、逗号或斜杠分隔。</bullet_item><para/>
        ///     <bullet_item>DDM 2— 经度和纬度值位于两个单独的字段中。</bullet_item><para/>
        ///     <bullet_item>DMS 1 - 经度和纬度值都位于单个字段中。两个值用空格、逗号或斜杠分隔。</bullet_item><para/>
        ///     <bullet_item>DMS 2 - 经度和纬度值位于两个单独的字段中。</bullet_item><para/>
        ///     <bullet_item>Gars - 全球区域参考系统。根据纬度和经度，它将世界划分和细分为单元。</bullet_item><para/>
        ///     <bullet_item>Georef - 世界地理参考系。一个基于网格的系统，将世界划分为 15 度的四边形，然后细分为更小的四边形。</bullet_item><para/>
        ///     <bullet_item>Georef 16 - 世界地理参考系统，精度为 16 位。</bullet_item><para/>
        ///     <bullet_item>UTM 区域 - UTM 区域编号后的字母 N 或 S 仅表示北半球或南半球。</bullet_item><para/>
        ///     <bullet_item>UTM 波段 - UTM 区域编号后面的字母表示 20 个纬度波段之一。N 或 S 不表示半球。</bullet_item><para/>
        ///     <bullet_item>USNG—美国国家电网。与 MGRS 几乎完全相同，但使用北美基准面 1983 （NAD83） 作为其基准面。</bullet_item><para/>
        ///     <bullet_item>USNG 16 - 美国国家电网，精度更高 16 位。</bullet_item><para/>
        ///     <bullet_item>MGRS - 军用网格参考系统。遵循 UTM 坐标并将世界划分为 6 度经度和 20 个纬度带，但 MGRS 随后将网格区域进一步细分为更小的 100,000 米网格。然后将这些 100,000 米网格划分为 10,000 米、1,000 米、100 米、10 米和 1 米网格。</bullet_item><para/>
        ///     <bullet_item>MGRS 16 - 16 位精度的军用网格参考系统。</bullet_item><para/>
        ///   </bulletList>
        ///   <para>DD、DDM、DMS 和 UTM 也是有效的关键字;只需键入（在对话框中）或在脚本中传递值即可使用它们。但是，带有下划线和限定符的关键字可以更多地说明字段值。</para>
        /// </xdoc></para>
        /// <para></para>
        /// </summary>
        [DisplayName("Output Coordinate Format")]
        [Description("")]
        [Option(OptionTypeEnum.Must)]
        public _output_coordinate_format_value _output_coordinate_format { get; set; }

        public enum _output_coordinate_format_value
        {
            /// <summary>
            /// <para>DD 1</para>
            /// <para>DD 1—Both longitude and latitude values are in a single field. Two values are separated by a space, a comma, or a slash.</para>
            /// <para>DD 1 - 经度和纬度值都位于单个字段中。两个值用空格、逗号或斜杠分隔。</para>
            /// </summary>
            [Description("DD 1")]
            [GPEnumValue("DD_1")]
            _DD_1,

            /// <summary>
            /// <para>DD 2</para>
            /// <para>DD 2—Longitude and latitude values are in two separate fields.</para>
            /// <para>DD 2 - 经度和纬度值位于两个单独的字段中。</para>
            /// </summary>
            [Description("DD 2")]
            [GPEnumValue("DD_2")]
            _DD_2,

            /// <summary>
            /// <para>DD numeric</para>
            /// <para>DD numeric—Longitude and latitude values are in two separate fields of type Double. Values in the West and South are denoted by a minus sign.</para>
            /// <para>DD 数值 - 经度和纬度值位于 Double 类型的两个独立字段中。西部和南部的值用减号表示。</para>
            /// </summary>
            [Description("DD numeric")]
            [GPEnumValue("DD_NUMERIC")]
            _DD_NUMERIC,

            /// <summary>
            /// <para>DDM 1</para>
            /// <para>DDM 1—Both longitude and latitude values are in a single field. Two values are separated by a space, a comma, or a slash.</para>
            /// <para>DDM 1 - 经度和纬度值都位于单个字段中。两个值用空格、逗号或斜杠分隔。</para>
            /// </summary>
            [Description("DDM 1")]
            [GPEnumValue("DDM_1")]
            _DDM_1,

            /// <summary>
            /// <para>DDM 2</para>
            /// <para>DDM 2— Longitude and latitude values are in two separate fields.</para>
            /// <para>DDM 2— 经度和纬度值位于两个单独的字段中。</para>
            /// </summary>
            [Description("DDM 2")]
            [GPEnumValue("DDM_2")]
            _DDM_2,

            /// <summary>
            /// <para>DMS 1</para>
            /// <para>DMS 1—Both longitude and latitude values are in a single field. Two values are separated by a space, a comma, or a slash.</para>
            /// <para>DMS 1 - 经度和纬度值都位于单个字段中。两个值用空格、逗号或斜杠分隔。</para>
            /// </summary>
            [Description("DMS 1")]
            [GPEnumValue("DMS_1")]
            _DMS_1,

            /// <summary>
            /// <para>DMS 2</para>
            /// <para>DMS 2—Longitude and latitude values are in two separate fields.</para>
            /// <para>DMS 2 - 经度和纬度值位于两个单独的字段中。</para>
            /// </summary>
            [Description("DMS 2")]
            [GPEnumValue("DMS_2")]
            _DMS_2,

            /// <summary>
            /// <para>Gars</para>
            /// <para>Gars—Global Area Reference System. Based on latitude and longitude, it divides and subdivides the world into cells.</para>
            /// <para>Gars - 全球区域参考系统。根据纬度和经度，它将世界划分和细分为单元。</para>
            /// </summary>
            [Description("Gars")]
            [GPEnumValue("GARS")]
            _GARS,

            /// <summary>
            /// <para>Georef</para>
            /// <para>Georef—World Geographic Reference System. A grid-based system that divides the world into 15-degree quadrangles and then subdivides into smaller quadrangles.</para>
            /// <para>Georef - 世界地理参考系。一个基于网格的系统，将世界划分为 15 度的四边形，然后细分为更小的四边形。</para>
            /// </summary>
            [Description("Georef")]
            [GPEnumValue("GEOREF")]
            _GEOREF,

            /// <summary>
            /// <para>Georef 16</para>
            /// <para>Georef 16—World Geographic Reference System in 16-digit precision.</para>
            /// <para>Georef 16 - 世界地理参考系统，精度为 16 位。</para>
            /// </summary>
            [Description("Georef 16")]
            [GPEnumValue("GEOREF16")]
            _GEOREF16,

            /// <summary>
            /// <para>UTM bands</para>
            /// <para>UTM bands—The letter after the UTM zone number designates one of the 20 latitude bands. N or S does not designate a hemisphere.</para>
            /// <para>UTM 波段 - UTM 区域编号后面的字母表示 20 个纬度波段之一。N 或 S 不表示半球。</para>
            /// </summary>
            [Description("UTM bands")]
            [GPEnumValue("UTM_BANDS")]
            _UTM_BANDS,

            /// <summary>
            /// <para>UTM zones</para>
            /// <para>UTM zones—The letter N or S after the UTM zone number designates only North or South hemisphere.</para>
            /// <para>UTM 区域 - UTM 区域编号后的字母 N 或 S 仅表示北半球或南半球。</para>
            /// </summary>
            [Description("UTM zones")]
            [GPEnumValue("UTM_ZONES")]
            _UTM_ZONES,

            /// <summary>
            /// <para>USNG</para>
            /// <para>USNG—United States National Grid. Almost exactly the same as MGRS but uses North American Datum 1983 (NAD83) as its datum.</para>
            /// <para>USNG—美国国家电网。与 MGRS 几乎完全相同，但使用北美基准面 1983 （NAD83） 作为其基准面。</para>
            /// </summary>
            [Description("USNG")]
            [GPEnumValue("USNG")]
            _USNG,

            /// <summary>
            /// <para>USNG 16</para>
            /// <para>USNG 16—United States National Grid in 16-digit higher precision.</para>
            /// <para>USNG 16 - 美国国家电网，精度更高 16 位。</para>
            /// </summary>
            [Description("USNG 16")]
            [GPEnumValue("USNG16")]
            _USNG16,

            /// <summary>
            /// <para>MGRS</para>
            /// <para>MGRS—Military Grid Reference System. Follows the UTM coordinates and divides the world into 6-degree longitude and 20 latitude bands, but MGRS then further subdivides the grid zones into smaller 100,000-meter grids. These 100,000-meter grids are then divided into 10,000-meter, 1,000-meter, 100-meter, 10-meter, and 1-meter grids.</para>
            /// <para>MGRS - 军用网格参考系统。遵循 UTM 坐标并将世界划分为 6 度经度和 20 个纬度带，但 MGRS 随后将网格区域进一步细分为更小的 100,000 米网格。然后将这些 100,000 米网格划分为 10,000 米、1,000 米、100 米、10 米和 1 米网格。</para>
            /// </summary>
            [Description("MGRS")]
            [GPEnumValue("MGRS")]
            _MGRS,

            /// <summary>
            /// <para>MGRS 16</para>
            /// <para>MGRS 16—Military Grid Reference System in 16-digit precision.</para>
            /// <para>MGRS 16 - 16 位精度的军用网格参考系统。</para>
            /// </summary>
            [Description("MGRS 16")]
            [GPEnumValue("MGRS16")]
            _MGRS16,

        }

        /// <summary>
        /// <para>ID</para>
        /// <para>This parameter is no longer used as all fields are transferred to output table.</para>
        /// <para>此参数不再使用，因为所有字段都传输到输出表。</para>
        /// <para></para>
        /// </summary>
        [DisplayName("ID")]
        [Description("")]
        [Option(OptionTypeEnum.optional)]
        public object _id_field { get; set; } = null;


        /// <summary>
        /// <para>Output Coordinate System</para>
        /// <para><xdoc>
        ///   <para>The spatial reference of the output feature class. The default is GCS_WGS_1984.</para>
        ///   <para>The tool projects the output to the spatial reference specified. If the input and output coordinate systems are in a different datum, a default transformation will be used based on the coordinate systems of the input and the output and the extent of the data.</para>
        /// </xdoc></para>
        /// <para><xdoc>
        ///   <para>输出要素类的空间参考。默认值为 GCS_WGS_1984。</para>
        ///   <para>该工具将输出投影到指定的空间参考。如果输入坐标系和输出坐标系位于不同的基准面中，则将基于输入和输出的坐标系以及数据范围使用默认变换。</para>
        /// </xdoc></para>
        /// <para></para>
        /// </summary>
        [DisplayName("Output Coordinate System")]
        [Description("")]
        [Option(OptionTypeEnum.optional)]
        public object _spatial_reference { get; set; } = null;


        /// <summary>
        /// <para>Input Coordinate System</para>
        /// <para>The spatial reference of the input data. If the input spatial reference cannot be obtained from the input table, a default of GCS_WGS_1984 will be used.</para>
        /// <para>输入数据的空间参考。如果无法从输入表中获取输入空间参考，则将使用默认值 GCS_WGS_1984。</para>
        /// <para></para>
        /// </summary>
        [DisplayName("Input Coordinate System")]
        [Description("")]
        [Option(OptionTypeEnum.optional)]
        public object _in_coor_system { get; set; } = null;


        /// <summary>
        /// <para>Exclude records with invalid notation</para>
        /// <para><xdoc>
        ///   <para>Specifies whether records with invalid notation will be excluded.</para>
        ///   <para>
        ///     <bulletList>
        ///       <bullet_item>Unchecked—Invalid records will be excluded, and only valid records will be converted to points in the output. This is the default.</bullet_item><para/>
        ///       <bullet_item>Checked—Valid records will be converted to points in the output and invalid records will be included as null geometry.</bullet_item><para/>
        ///     </bulletList>
        ///   </para>
        /// </xdoc></para>
        /// <para><xdoc>
        ///   <para>指定是否排除具有无效表示法的记录。</para>
        ///   <para>
        ///     <bulletList>
        ///       <bullet_item>未选中—将排除无效记录，并且仅将有效记录转换为输出中的点。这是默认设置。</bullet_item><para/>
        ///       <bullet_item>选中 - 有效记录将转换为输出中的点，无效记录将作为空几何包括在内。</bullet_item><para/>
        ///     </bulletList>
        ///   </para>
        /// </xdoc></para>
        /// <para></para>
        /// </summary>
        [DisplayName("Exclude records with invalid notation")]
        [Description("")]
        [Option(OptionTypeEnum.optional)]
        public _exclude_invalid_records_value _exclude_invalid_records { get; set; } = _exclude_invalid_records_value._false;

        public enum _exclude_invalid_records_value
        {
            /// <summary>
            /// <para>EXCLUDE_INVALID</para>
            /// <para></para>
            /// <para></para>
            /// </summary>
            [Description("EXCLUDE_INVALID")]
            [GPEnumValue("true")]
            _true,

            /// <summary>
            /// <para>INCLUDE_INVALID</para>
            /// <para></para>
            /// <para></para>
            /// </summary>
            [Description("INCLUDE_INVALID")]
            [GPEnumValue("false")]
            _false,

        }

        public ConvertCoordinateNotation SetEnv(object XYTolerance = null, object geographicTransformations = null, object outputCoordinateSystem = null, object scratchWorkspace = null, object workspace = null)
        {
            base.SetEnv(XYTolerance: XYTolerance, geographicTransformations: geographicTransformations, outputCoordinateSystem: outputCoordinateSystem, scratchWorkspace: scratchWorkspace, workspace: workspace);
            return this;
        }

    }

}